In the field of digital communications, digital information is typically prepared for transmission through a channel by encoding it. The encoded data is then used to modulate a transmission to the channel. A transmission received from the channel is then demodulated and decoded to recover the original information.
Encoding the digital data serves to improve communication performance so that the transmitted signals are less corrupted by noise, fading, or other interference associated with the channel. The term “channel” can include media such as transmission lines, wireless communication and information storage devices such as magnetic disc drives. In the case of information storage devices, the signal is stored in the channel for a period of time before it is accessed or received. Encoding can reduce the probability of noise being introduced into a recovered digital signal when the encoding is adapted to the known characteristics of the data and its interaction with known noise characteristics of the channel.
In typical encoding arrangements, data words of m data bits are encoded into larger code words of n code bits, and the ratio m/n is known as the code rate of the encoder. In certain applications, such as in perpendicular recording within data storage systems, it is desirable for encoded channel sequences to have a spectral null at zero frequency. Such sequences are said to be DC-free or to have a DC content that is limited. Given a sequence of binary digits, if each binary digit “1” is translated into a plus one (+1) and each binary digit “0” is translated into a minus one (−1), the sequence will be DC-free if the running digital sum of the bipolar sequence is bounded. The running digital sum is the sum of all values (+1 and −1) in the bipolar sequence. When the variation of the running digital sum is kept to a small value, the sequence is known to have a tight bound. A tighter bound can improve the performance of the channel.
There is a need for DC-free codes that are amenable to practical implementations. It has been found that the mapping of binary input strings into code words having a bounded running digital sum tends to be complex. This complexity can result in considerable engineering effort being consumed to define the encoding and decoding rules and can require complex software or hardware to implement. A DC-free code is desired that has limited complexity and provides limited error propagation properties.
Various embodiments of the present invention address these problems, and offer other advantages over the prior art.